The number and kind of portable (i.e., small form factor, hand held) consumer electronic products on the market is exploding. These portable consumer electronic products include, for example, PDAs, media players, cellular phones, and cameras. For competitive and other reasons, these consumer electronic products have increased their functionality. For example, cellular phones have added PDA and camera functionality, PDAs have added cellular phone and music player functionality, media players have added PDA and video game functionality, and so on.
In order to provide its primary function, a portable consumer electronic product uses a host device to execute a host application that uses content stored in a conventional mass storage device. The host application, in turn, can provide both core services directly related to the primary function of the hand held consumer product and ancillary services related to the manipulation and management of the content stored in the storage device. For example, in order for a media player to play a media file, such as an MP3 file, the host application can use a core application in the form of a media player application to retrieve and play a music file (in the form of an MP3 file) stored in the storage device. The host application can also use an ancillary services application to provide a user with the capability of managing the music files stored in the storage device. Such user management can include playlist manipulation and generation, sorting and searching for a specific music file, music genre, artist, etc. In the case of a media player arranged to display images (both still and video) the core application can take the form of a photo display and editing application that provides a user with touch-up capabilities such as red eye reduction, black and white conversion, image cropping and rotation. An associated ancillary services application can take the form of an image and or video management program that allows a user to sort, store and catalog images.
Therefore, a host application can be called upon to provide both core services (such as playing an MP3 file, displaying an image file, or playing a video file (MP4)) and ancillary services related to content management and manipulation (sorting and cataloging imaging, sorting MP3 files, playlist editing, content searching, indexing and so on). However, regardless of whether the host application is called upon to provide a core or ancillary service, the host application must access data stored in the storage device where all files are stored using a logical block format. Storing data in a logical block format does not typically present an undue burden to the core application (playing a music file, for example), however, since mass storage devices operate at the granularity of a mass storage device block, rather than at the logical file level, ancillary services may not be optimally configured. This is especially true since many files (such as MP3) are of a predetermined size, they are stored more naturally as a data object and not as the logical blocks imposed by the conventional mass storage device.
Since these portable products have both limited processing resources and available RAM., difficulties can arise when the portable consumer electronic product is called upon to perform process intensive tasks requiring the host application (in particular the ancillary application) to process data stored as logical blocks that would more naturally be stored as a data object. In particular, it is typically the search/query operations (i.e. ‘read-related’ commands) that consume the most processing resources of the host in the context of ancillary services that can result in excessive power consumption by a host processor and long execution times resulting in slow responsiveness. In this way, the user may be left with a negative user experience since users usually do not like a product that is slow and whose battery life is short.
Therefore, improving performance and therefore the user experience of the portable electronic device is highly desirable by, for example, facilitating the execution of ancillary storage services by the host application.